Repo auto make wiki page - ☆Wiki Sandbox - НТЦ 'Комплексные Системы'

Csit.Delta.ClientUtil.D8ParamValueFormatter

Форматирование VQT в D8ParamValueFormatter

Синтаксис строки форматирования

Строка форматирования состоит из текста, который может содержать токены первого уровня в фигурных скобках. Токены первого уровня могут содержать токены второго уровня в квадратных скобках. Каждый токен состоит из имени и опциональной строки форматирования токена, которая указывается через двоеточие. После имени токена второго уровня можно указать вопросительный знак - тогда при отсутствии соответствующего объекта токен будет проигнорирован.
В начале строки форматирования токена 1-го или 2-го уровней можно указать токены задания часового пояса и/или культуры в угловых скобках.

...{L1TOKEN:...[L2TOKEN:...]...[L2TOKEN:...]...}...{L1TOKEN}...

Каждый токен L1 и L2 имеет следующий формат

{L1TokenName}
{L1TokenName:TokenFormat}
или
[L2TokenName]
[L2TokenName?]
[L2TokenName:TokenFormat]

TokenFormat = [<TZ:TimezoneSpec>][<LC:CultureSpec>][FormatSpec]

Примеры:

P = {ValueUnit:0.###}, S = {StateNumber:X08}h, T = {LocalTimestamp:<TZ:USER><LC:en>hh:mm:ss dd.MM.yy}
{Value:[0], [1:0.00]?}
{Value:width=[Width:0.00], height=[Height:0.00]}

Токены

Токены для полей данных (ID8Vqt)

  • Value - только значение
  • ValueXls ¹ - только значение (для совместимости с xls-отчетами)
  • XState - расширенное состояние (int)
  • State - состояние (D8ParamValueState)
  • StateNumber ¹ - состояние (uint)
  • Quality - качество значения (float)
  • Timestamp - метка времени (DateTime)
  • LocalTimestamp ¹ - метка времени, сконвертированная в локальный часовой пояс пользователя (DateTime)
  • UtcTimestamp ¹ - метка времени в UTC (DateTime)
  • BasicState ¹ - базовое состояние (D8ParamValueStateBasic)
  • BasicStateNumber ¹ - базовое состояние (uint)
  • OADATE ¹ - сокращенная запись для (Value:OADATE)
  • OADATE_RAW ¹ - сокращенная запись для (Value:OADATE_RAW)

Токены для полей НСИ (ID8ParamInfo и ID8ParamInfoBase)

  • LocalId - локальный илентификатор (int)
  • InstanceId - тдентификатор подсистемы (short)
  • GlobalId - глобальный идентификатор (long)
  • SID - строковый идентификатор
  • ParamType - тип параметра (D8ParamType)
  • Subtype - подтип параметра (D8ParamSubtype)
  • Name - имя
  • ShortName - краткое имя
  • AdditionalName - дополнительное имя
  • AKS - код
  • Interval - интервал значений (D8TimeInterval)
  • Step - шаг значений (D8TimeStep)
  • Options - флаги параметра (D8ParamOptions)
  • Units - единицы измерения
  • AggregatedUnits - единицы измерения после агрегирования
  • AggregationCoef - коэффициент агрегирования
  • ScaleName - название шкалы
  • ScaleStates - перечень пар значение/имя всех дискретных состояний
  • Min - минимум шкалы (double)
  • Max - максиму шкалы (double)
  • ValidLow - низ достоверности (double)
  • ValidHigh - верх достоверности (double)
  • RangeUp1 - первая уставка вверх (double)
  • RangeUp2 - вторая уставка вверх (double)
  • RangeDown1 - первая уставка вниз (double)
  • RangeDown2 - вторая уставка вниз (double)
  • DeltaSave - апертура архивирования (double)
  • DeltaSend - апертура пересылки (double)
  • DeviceName - название устройства
  • DeviceId - идентификатор устройства (int)
  • DeviceChannel ¹ - канал устройства (string)
  • GroupName - название группы
  • GroupId - идентификатор группы (int)

Остальные токены

  • ValueUnits ¹ - значение и единицы измерения

¹ - название не соответствует имени в коде

Особенности форматирования для Value

В строке форматирования для значения параметра (токен Value) можно указать специальные символы:
  • OADATE
    Означает, что аналоговое значение параметра нужно использовать, чтобы получить значение даты и времени в формате OLE.
    Далее это значение конвертируется из UTC в часовой пояс, указанный в строке форматирования (<TZ>).
    Если часовой пояс не указан, то по умолчанию используется часовой пояс пользователя.
  • OADATE_RAW
    То же, что OADATE, но по умолчанию используется часовой пояс UTC.

Например:

{Value:OADATE}
{Value:OADATE:dd.MM.yy HH:mm:ss}
{Value:OADATE:<TZ:+3d>dd.MM.yy HH:mm:ss}
{Value:OADATE_RAW}

Кроме того OADATE и OADATE_RAW можно использовать как имя токена строки форматирования.